<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
  <title>Version 1.35.0</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <link rel="icon" href="/favicon.ico" type="image/ico" />
  <link rel="stylesheet" type="text/css" href="/style-v2/section-boost.css" />

  <style type="text/css">
/*<![CDATA[*/
  #content .news-description ul {
    list-style: none;
  }
  #content .news-description ul ul {
    list-style: circle;
  }
  /*]]>*/
  </style>

  <!--[if IE 7]> <style type="text/css"> body { behavior: url(/style-v2/csshover3.htc); } </style> <![endif]-->
</head>
<!-- Don't edit this page! It's generated by site-tools/site-tools.py -->
<body>
  <div id="heading">
    <!--#include virtual="/common/heading.html" -->  </div>

  <div id="body">
    <div id="body-inner">
      <div id="content">
        <div class="section" id="intro">
          <div class="section-0">
            <div class="section-title">
              <h1>Version 1.35.0</h1>
            </div>

            <div class="section-body">
              <h2><span class=
              "news-title">Version 1.35.0</span></h2>

              <p><span class=news-date">March 29th, 2008 12:00 GMT</span></p>
              <p><a href="/doc/libs/1_35_0/">Documentation</a>
              <table class="download-table"><caption>Downloads</caption><tr><th scope="col">Platform</th><th scope="col">File</th></tr>
<tr><th scope="row" rowspan="2">unix</th><td><a href="http://sourceforge.net/projects/boost/files/boost/1.35.0/boost_1_35_0.tar.bz2">boost_1_35_0.tar.bz2</a></td></tr><tr><td><a href="http://sourceforge.net/projects/boost/files/boost/1.35.0/boost_1_35_0.tar.gz">boost_1_35_0.tar.gz</a></td></tr>
<tr><th scope="row" rowspan="2">windows</th><td><a href="http://sourceforge.net/projects/boost/files/boost/1.35.0/boost_1_35_0.7z">boost_1_35_0.7z</a></td></tr><tr><td><a href="http://sourceforge.net/projects/boost/files/boost/1.35.0/boost_1_35_0.zip">boost_1_35_0.zip</a></td></tr></table>
              <div class="news-description">
                <div class="description">



  <div id="version_1_35_0.new_libraries">
    <h3><span class="link">New Libraries</span></h3>
    <ul>
      <li>
        <div>
          <span class="library"><a href="/libs/asio/index.html">Asio</a>:</span> Portable networking,
          including sockets, timers, hostname resolution and socket iostreams, from
          Chris Kohlhoff.
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/bimap/index.html">Bimap</a>:</span> Boost.Bimap is
          a bidirectional maps library for C++. With Boost.Bimap you can create associative
          containers in which both types can be used as key, from Matias Capeletto.
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/circular_buffer/index.html">Circular Buffer</a>:</span> STL
          compliant container also known as ring or cyclic buffer, from Jan Gaspar.
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/function_types/index.html">Function Types</a>:</span>
  Boost.FunctionTypes
          provides functionality to classify, decompose and synthesize function,
          function pointer, function reference and pointer to member types. From
          Tobias Schwinger.
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/fusion/index.html">Fusion</a>:</span>
  Library for
          working with tuples, including various containers, algorithms, etc. From
          Joel de Guzman, Dan Marsden and Tobias Schwinger.
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/gil/doc/index.html">GIL</a>:</span>
  Generic Image
          Library, from Lubomir Bourdev and Hailin Jin.
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/interprocess/index.html">Interprocess</a>:</span>
  Shared
          memory, memory mapped files, process-shared mutexes, condition variables,
          containers and allocators, from Ion Gaztañaga.
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/intrusive/index.html">Intrusive</a>:</span>
  Intrusive
          containers and algorithms, from Ion Gaztañaga.
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/math/doc/sf_and_dist/html/index.html">Math/Special
          Functions</a>:</span>
  A wide selection of mathematical special functions from
          John Maddock, Paul Bristow, Hubert Holin and Xiaogang Zhang.
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/math/doc/sf_and_dist/html/index.html">Math/Statistical
          Distributions</a>:</span>
  A wide selection of univariate statistical distributions
          and functions that operate on them from John Maddock and Paul Bristow
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/doc/html/mpi.html">MPI</a>:</span>
  Message Passing Interface
          library, for use in distributed-memory parallel application programming,
          from Douglas Gregor and Matthias Troyer.
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/system/index.html">System</a>:</span>
  Operating system
          support, including the diagnostics support that will be part of the C++0x
          standard library, from Beman Dawes.
        </div>
      </li>
    </ul>
  </div>
  <div id="version_1_35_0.updated_libraries">
    <h3><span class="link">Updated Libraries</span></h3>
    <ul>
      <li>
        <div>
          <span class="library"><a href="/libs/graph/doc/index.html">Graph</a>:</span>
  Generic graph
          components and algorithms. Highlights:
          <ul>
            <li>
              <div>
                <code><span class="identifier">kolmogorov_max_flow</span></code>,
                from Stephan Diederich as part of the 2006 Google Summer of Code.
              </div>
            </li>
            <li>
              <div>
                <code><span class="identifier">read_dimacs_max_flow</span></code>
                and <code><span class="identifier">write_dimacs_max_flow</span></code>
                for max-flow problems, from Stephan Diederich.
              </div>
            </li>
            <li>
              <div>
                <code><span class="identifier">read_graphml</span></code> and
                <code><span class="identifier">write_graphml</span></code> for
                GraphML input/output, from Tiago de Paula Peixoto.
              </div>
            </li>
            <li>
              <div>
                <code><span class="identifier">minimum_cycle_ratio</span></code>
                and <code><span class="identifier">maximum_cycle_ratio</span></code>,
                from Dmitry Bufistov and Andrey Parfenov.
              </div>
            </li>
            <li>
              <div>
                <code><span class="identifier">boyer_myrvold_planarity_test</span></code>,
                along with a suite of algorithms for planar graphs, from Aaron Windsor.
              </div>
            </li>
            <li>
              <div>
                LEDA Adaptor improvements, from Jens Müller.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/functional/hash/index.html">Hash</a>:</span>
  A TR1
          hash function object, from Daniel James. Highlights:
          <ul>
            <li>
              <div>
                Support for <code><span class="keyword">long</span> <span class="keyword">long</span></code>,
                <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span></code>.
              </div>
            </li>
            <li>
              <div>
                Improved the algorithm for hashing floating point numbers.
              </div>
            </li>
            <li>
              <div>
                A few bug and warning fixes.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/iostreams/index.html">Iostreams</a>:</span> Framework
          for defining streams, stream buffers and i/o filters, from Jonathan Turkanis.
          Highlights:
          <ul>
            <li>
              <div>
                Clarified the semantics of close(). This fixes several bugs but will
                break some existing code. See <a href="/libs/iostreams/doc/index.html?path=12">Release
                Notes</a> for details.
              </div>
            </li>
            <li>
              <div>
                Numerous other bug fixes and optimizations.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/multi_array/index.html">Multi Array</a>:</span>
          <ul>
            <li>
              <div>
                Added "dimensionality" compile-time constante to the MultiArray
                concept.
              </div>
            </li>
            <li>
              <div>
                For greater control over error situations, uses of C++ assert have
                been replaced with BOOST_ASSERT.
              </div>
            </li>
            <li>
              <div>
                Fixed a bug with simultaneous resizing and reindexing.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/multi_index/doc/index.html">Multi-index Containers</a>:</span>
          <ul>
            <li>
              <div>
                New <a href="/libs/multi_index/doc/tutorial/key_extraction.html#global_fun"><code><span class="identifier">global_fun</span></code></a> predefined key
                extractor.
              </div>
            </li>
            <li>
              <div>
                Added <a href="/libs/multi_index/doc/tutorial/indices.html#iterator_to"><code><span class="identifier">iterator_to</span></code></a> facility.
              </div>
            </li>
            <li>
              <div>
                Included <a href="/libs/multi_index/doc/tutorial/creation.html#special_allocator">support
                for non-standard allocators</a> such as those of <a href="/libs/interprocess/index.html">Boost.Interprocess</a>,
                which makes <code><span class="identifier">multi_index_container</span></code>s
                placeable in shared memory.
              </div>
            </li>
            <li>
              <div>
                New versions of <code><span class="identifier">modify</span></code>
                and <code><span class="identifier">modify_key</span></code> with
                rollback, as described in the <a href="/libs/multi_index/doc/tutorial/basics.html#ord_updating">tutorial</a>.
              </div>
            </li>
            <li>
              <div>
                A number of optimizations and minor improvements have also been included.
                For a complete list of changes, see the library <a href="/libs/multi_index/doc/release_notes.html#boost_1_35">release
                notes</a>.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/serialization/index.html">Serialization</a>:</span>
   Boost.Serialization
          has been updated with optimizations for dense arrays.
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/thread/index.html">Thread</a>:</span>
          <ul>
            <li>
              <div>
                The Thread library has been updated to be more in line with the C++0x
                working draft.
              </div>
            </li>
            <li>
              <div>
                Instances of boost::thread and of the various lock types are now
                movable.
              </div>
            </li>
            <li>
              <div>
                Threads can be interrupted at interruption points.
              </div>
            </li>
            <li>
              <div>
                Condition variables can now be used with any type that implements
                the Lockable concept, through the use of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">condition_variable_any</span></code>
                (<code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">condition</span></code> is a typedef to <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">condition_variable_any</span></code>, provided
                for backwards compatibility). <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">condition_variable</span></code>
                is provided as an optimization, and will only work with <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unique_lock</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span><span class="special">&gt;</span></code>
                (<code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span><span class="special">::</span><span class="identifier">scoped_lock</span></code>).
              </div>
            </li>
            <li>
              <div>
                Thread IDs are separated from boost::thread, so a thread can obtain
                it's own ID (using <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">this_thread</span><span class="special">::</span><span class="identifier">get_id</span><span class="special">()</span></code>), and IDs can be used as keys in
                associative containers, as they have the full set of comparison operators.
              </div>
            </li>
            <li>
              <div>
                Timeouts are now implemented using the Boost DateTime library, through
                a typedef <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">system_time</span></code> for absolute timeouts,
                and with support for relative timeouts in many cases. <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">xtime</span></code> is supported for backwards
                compatibility only.
              </div>
            </li>
            <li>
              <div>
                Locks are implemented as publicly accessible templates <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">lock_guard</span></code>, <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unique_lock</span></code>,
                <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_lock</span></code>, and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">upgrade_lock</span></code>, which are templated
                on the type of the mutex. The Lockable concept has been extended
                to include publicly available <code><span class="identifier">lock</span><span class="special">()</span></code> and <code><span class="identifier">unlock</span><span class="special">()</span></code> member functions, which are used
                by the lock types.
              </div>
            </li>
            <li>
              <div>
                <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">try_mutex</span></code> has been removed, and
                the functionality subsumed into <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span></code>.
                <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">try_mutex</span></code> is left as a typedef,
                but is no longer a separate class.
              </div>
            </li>
            <li>
              <div>
                <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">recursive_try_mutex</span></code> has been removed,
                and the functionality subsumed into <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">recursive_mutex</span></code>.
                <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">recursive_try_mutex</span></code> is left as
                a typedef, but is no longer a separate class.
              </div>
            </li>
            <li>
              <div>
                <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">thread</span><span class="special">::</span><span class="identifier">lock_ops</span></code> has been removed. Code
                that relies on the <code><span class="identifier">lock_ops</span></code>
                implementation detail will no longer work, as this has been removed,
                as it is no longer necessary now that mutex types now have public
                <code><span class="identifier">lock</span><span class="special">()</span></code>
                and <code><span class="identifier">unlock</span><span class="special">()</span></code>
                member functions.
              </div>
            </li>
            <li>
              <div>
                <code><span class="identifier">scoped_lock</span></code> constructors
                with a second parameter of type bool are no longer provided. With
                previous boost releases, <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span><span class="special">::</span><span class="identifier">scoped_lock</span>
                <span class="identifier">some_lock</span><span class="special">(</span><span class="identifier">some_mutex</span><span class="special">,</span><span class="keyword">false</span><span class="special">);</span></code>
                could be used to create a lock object that was associated with a
                mutex, but did not lock it on construction. This facility has now
                been replaced with the constructor that takes a <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">defer_lock_type</span></code>
                as the second parameter: <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mutex</span><span class="special">::</span><span class="identifier">scoped_lock</span>
                <span class="identifier">some_lock</span><span class="special">(</span><span class="identifier">some_mutex</span><span class="special">,</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">defer_lock</span><span class="special">);</span></code>
              </div>
            </li>
            <li>
              <div>
                The broken <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">read_write_mutex</span></code>
                has been replaced with <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_mutex</span></code>.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/wave/index.html">Wave</a>:</span> Standards conformant
          implementation of the mandated C99/C++ preprocessor functionality packed
          behind an easy to use iterator interface, from Hartmut Kaiser. Highlights:
          <ul>
            <li>
              <div>
                Added the possibility to continue the preprocessing after an error
                occured.
              </div>
            </li>
            <li>
              <div>
                Added the macro introspection API to the wave::context object.
              </div>
            </li>
            <li>
              <div>
                Added threading support to the library.
              </div>
            </li>
            <li>
              <div>
                Improved the overall performance by upto 30%.
              </div>
            </li>
            <li>
              <div>
                Changed and unified preprocessor hook interface (this is an interface
                breaking change!), added several new preprocessor hook functions.
              </div>
            </li>
            <li>
              <div>
                Added serialization support.
              </div>
            </li>
            <li>
              <div>
                Added new examples (for instance: Hannibal - a partial C++ parser,
                by Danny Havenith).
              </div>
            </li>
            <li>
              <div>
                Added a new lexical analyzer based on Ben Hansons Lexertl library.
              </div>
            </li>
            <li>
              <div>
                Fixed a large number of other bugs and problems.
              </div>
            </li>
          </ul>
        </div>
      </li>
      <li>
        <div>
          <span class="library"><a href="/libs/xpressive/index.html">Xpressive</a>:</span> Regular
          expressions that can be written as strings or as expression templates,
          and that can refer to each other and themselves recursively with the power
          of context-free grammars, from Eric Niebler. Highlights:
          <ul>
            <li>
              <div>
                Added <em>semantic actions</em> to static regexes. A
                semantic action is code that executes when part of a regular expression
                matches.
              </div>
            </li>
            <li>
              <div>
                Added <em>custom assertions</em> to static regexes. A
                custom assertion is a Boolean predicate that can participate in the
                regex match.
              </div>
            </li>
            <li>
              <div>
                Added <em>named regexes</em> for embedding a static or
                dynamic regex into a dynamic regex. This can be used to create dynamic
                regex grammars.
              </div>
            </li>
            <li>
              <div>
                Added <em>named captures</em> to dynamic regexes, like
                Perl.
              </div>
            </li>
          </ul>
        </div>
      </li>
    </ul>
  </div>
  <div id="version_1_35_0.supported_compilers">
    <h3><span class="link">Supported Compilers</span></h3>
    <p>
      The following compilers are officially supported in this release:
    </p>
    <ul>
      <li>
        <div>
          HP aC++ A.06.14 on HP-UX
        </div>
      </li>
      <li>
        <div>
          Darwin GCC 4.01.
        </div>
      </li>
      <li>
        <div>
          GNU GCC up to version 4.2.1, on Linux and Solaris.
        </div>
      </li>
      <li>
        <div>
          Intel C++ 9.1 on Linux.
        </div>
      </li>
      <li>
        <div>
          Intel C++ 10.1 on Windows.
        </div>
      </li>
      <li>
        <div>
          Microsoft Visual C++ 7.1 and 8 on Windows (Visual Sudio .NET 2003 and 2005).
        </div>
      </li>
    </ul>
    <p>
      In addition the following compilers should be well supported, but weren't part
      of our release criteria for 1.35:
    </p>
    <ul>
      <li>
        <div>
          IBM Visual Age 9.0 on AIX.
        </div>
      </li>
      <li>
        <div>
          Intel C++ 10 and later on Linux.
        </div>
      </li>
      <li>
        <div>
          GNU GCC 4.3 and later on Linux and Solaris.
        </div>
      </li>
      <li>
        <div>
          Microsoft Visual C++ 9 (Visual Studio .NET 2008).
        </div>
      </li>
    </ul>
  </div>
  <div id="version_1_35_0.acknowledgements">
    <h3><span class="link">Acknowledgements</span></h3>
    <p>
      <a href="/users/people/beman_dawes.html">Beman Dawes</a> managed this
      release.
    </p>
  </div>
</div>
              </div>
            </div>
          </div>
        </div>
      </div>

      <div id="sidebar">
        <!--#include virtual="/common/sidebar-common.html" --><!--#include virtual="/common/sidebar-boost.html" -->      </div>

      <div class="clear"></div>
    </div>
  </div>

  <div id="footer">
    <div id="footer-left">
      <div id="copyright">
        <p>Copyright Rene Rivera 2006-2007.</p>
      </div><!--#include virtual="/common/footer-license.html" -->    </div>

    <div id="footer-right">
      <!--#include virtual="/common/footer-banners.html" -->    </div>

    <div class="clear"></div>
  </div>
</body>
</html>
